Perl 中的 RESTful API 用法示例

以下 Perl 示例显示如何设置以开始与系统进行交互。 样本后面是 Perl 函数调用,用于导入示例文件,指定目标 IP 地址,检索认证令牌,并最终使用该认证令牌对系统目标执行操作。

请参阅 Spectrum Virtualize RESTful API 以查看 Python 3 语言示例,或者参阅 CURL 中的用法示例以查看使用 curl 命令行实用程序的示例。

注: 以斜体显示的值表示您提供的值。
假设以下文件命名为 rest_perl.pl。该文件中包含用于构造 HTTP 请求并从响应中返回 JSON 数据的函数。可以导入或者在 Perl 脚本顶部复制并粘贴这些函数。
#!/usr/bin/perl -w use strict;
use warnings;
use HTTP::Request; use HTTP::Headers; use LWP::UserAgent; use JSON::PP;
my $ua = LWP::UserAgent->new(ssl_opts => { SSL_verify_mode => 'SSL_VERIFY_NONE' }j;
sub command{
my($host, $target, $method, $header_ref, $data_ref) = @_;
my $data_json = %{$data_ref} ? encode_json($data_ref) : "";
my $request = HTTP::Request->new($method => 
   "https://$host:7443/$target", HTTP::Headers->new(%{$header_ref}), $data_json);
$request->header(Content_Type => 'application/json');
my $response = $ua->request($request);
return decode_json($response->content);
}
如果正在导入该文件,请在其他 Perl 脚本中或在 Perl 调试器中使用以下行:
do "rest_perl.pl";
指定所需目标节点的节点 IP 地址:
$host = "system_IP_address";
提供认证信息以创建可在未来命令中使用的令牌:
$token = command($host,
'API_version/auth',
'POST',
{"X-Auth-Password" => "password", "X-Auth-Username" => "username"}, {})->{"token"};
要创建阵列,请包含 POST 方法、目标、JSON 参数以及新创建的令牌,如以下示例中所示:
$out = command($host,
'1.0/array',
'POST',
{"X-Auth-Token" => $token}, {raid_level => "raid5"});